谁在看直播

案例背景:如今,饱受青睐的直播行业已进入“全民时代”,人人皆可为网络主播,人人皆有望成网络红人。不同于传统的文字、图片、视频等传播形式,直播紧密的将用户与直播内容交互在一起,受到了极大的追捧。网络直播迅速发展成为一种新的互联网文化业态。直播行为数据刻画了主播和用户的行为。通过爬取直播行为数据进行分析,可以对提高直播流量和主播的收入带来价值。案例原文详见谁在看直播。

案例数据提供了爬取的直播用户行为,每一列分别对应:房间编号(room_id),操作时间(time),用户名(user_name)以及操作类型(act_type)。数据的爬取时间是2017年4月27日至2017年6月27日。

这个案例的学习目标包括:

  1. 了解直播数据;

  2. 学会对直播数据做描述性分析,并且适当解读。

  3. 学会调用R的JavaScript可视化库,通过交互图做可视化。

  4. 学会基于RFM模型,分析用户价值。

准备工作

清除工作环境,安装和加载一些需要的包。

任务一

分别找到数据863.tsv和1038864.tsv。读入样本数据,分别命名为room1和room2。这里你将学会读取tsv文件。提示:tsv文件的分隔符是什么?可以借助data.table包。

任务二

把数据中的操作时间列(time)转换为时间类型POSIXct。把两份数据rbind到一起,命名为room。体会rbind、cbind和merge的不同,谈谈你的理解。(合并之后通过head可以展示如下数据)

##    room_id                time           user_name act_type
## 1:     863 2017-04-29 20:33:21 "逗比的世界充满爱o"  "danmu"
## 2:     863 2017-04-29 20:33:22    "宝宝我被吓大的"  "danmu"
## 3:     863 2017-04-29 20:33:24     "天使超神saber"  "danmu"
## 4:     863 2017-04-29 20:33:25 "一季樱花MSN落雨殇"  "danmu"
## 5:     863 2017-04-29 20:33:25        "隔壁安叔叔"  "danmu"
## 6:     863 2017-04-29 20:33:27    "William陈伟霆z"  "danmu"

任务三

分房间统计用户操作数;分房间统计用户操作类型数。分析不同房间操作类型的差异。哪个房间的弹幕量多些?哪个房间的礼物量多些?结合你了解的直播,你能猜猜这些房间的类型是什么吗?提示:什么类型的房间,用户话多?什么类型的房间,用户打赏多?

##          act_type
## room_id   "danmu" "enter" "gift"
##   863      100715   16378  93884
##   1038864   78705   17944 138510

任务四

分周内每天(周一、周二、依次类推)统计两个房间总的日均操作数,借助ggplot2包绘制条形图,并借助plotly包将其转换为动态图,分析结果,尝试解读。首先,你理解为什么要统计每天的日均操作量,而不是各天的操作总量吗?其次,尝试将鼠标停留在图上,你发现了什么?如果用鼠标选择一块区域呢?

任务五

分小时(0时、1时、依次类推)分房间统计房间操作数,并利用dygraph包,绘制交互时序图,分析一天中不同时间操作数的不同,尝试解读。Hint:注意没有操作的小时,操作数应为0。两个房间的流量有没有高峰期,高峰期是同样的吗?结合前面任务推测的房间类型,尝试分析这一现象。

任务六

基于RFM模型的指标维度是:

  • 近度R(Recency):最近一次操作距今小时数,标准化;
  • 频度F(Frequency):平均操作时间间隔,标准化;
  • 强度M(Monetary):操作总数,标准化。

根据以上定义,计算两个房间总的按用户提取的RFM特征。思考这三个指标为什么可以反映用户价值?反映了用户哪方面的价值?特征值越大越好,还是越小越好?谈谈你的想法。

任务七

根据任务六提取的特征,对数据做summary,并进行分析。如何根据特征值评估用户价值呢?这两个房间分别有多少用户价值比较高?如果一个主播希望你从数据上给TA提供帮助,你会提出怎样的建议?提示:可以从流量和打赏两方面谈。

##   user_name            recency        frequency           monetary       
##  Length:56747       Min.   : 0.00   Min.   :    0.00   Min.   :   1.000  
##  Class :character   1st Qu.:10.07   1st Qu.:    3.10   1st Qu.:   1.000  
##  Mode  :character   Median :19.13   Median :   20.46   Median :   1.000  
##                     Mean   :23.34   Mean   :  104.75   Mean   :   7.862  
##                     3rd Qu.:36.86   3rd Qu.:   60.69   3rd Qu.:   4.000  
##                     Max.   :61.26   Max.   :13273.50   Max.   :7623.000  
##                                     NA's   :32721